1. Field of the Invention
This invention relates to computer systems and, more particularly, to apparatus and a method for improving instruction tracing operations in a computer system.
2. History of the Prior Art
In the continuing effort to improve affordable computers, newer components are continually being designed. This is especially true of the processors which offer the easiest way to improve operational speed. Among other improvements related to processors, clock speeds have increased dramatically, buses and processors have been decoupled to allow further increases in speed, and superscaler designs have become a reality in personal computer design.
Although each of these improvements has increased the operational speed of the computer, each has also increased the difficulty of programming. This is especially important in superscaler designs where commands are being processed by a number of different processing channels at one time. In the Pentium.RTM. processor manufactured by Intel Corporation of Santa Clara, Calif., for example, two integer channels and a floating point channel may be operating at once. In the design of many such superscaler processors, the commands which may be processed by one of the channels depend on the commands being processed by the other of the channels. In order for a programmer to provide applications which make best use of the facilities of these processors, it is necessary that the programmer be able to ascertain the sequences of operations accurately in order to understand how disruptions in the flow of operations may be removed.
The facilities provided by the Pentium.RTM. processor to the programmer for this purpose are somewhat primitive. The Pentium.RTM. processor provides three external pins (labeled IU, IV, and IBT) especially for tracing branching instructions. The IU pin provides a signal when an operation is completed in the U channel, the primary one of the two integer channels; while the IV pin provides a signal when an operation is completed in the V channel, the secondary one of the two integer channels. If a branch trace message special bus cycle is set, the IBT pin is driven active when a branch is taken; and, at the time the branch is taken, the target address of the branch is provided on the address bus and a number of branch trace lines. Since when an operation is taking place in a particular channel of the processor the state of the signal furnished on the IU or IV pin related to that channel changes, a count may be detected and utilized to determine the number of commands which occur between branches taken in a particular software operation. Thus, the signals on these three pins together indicate that a branch is being taken, signal that a target address is being provided, and allow a count to be made of the number of commands which have been processed by the channel.
By using the signals available on these pins, a programmer tracing the flow of commands can determine when branches are taken, which commands cause a branch, and to which addresses they are directed. Since the signals on the IU and IV pins provide only a count, a programmer must determine which commands are those which result in branches being taken, a tedious process. However, the count does allow a step-by-step process through which this may be determined. Using these bits of information helps a person program more efficiently. However, this arrangement requires that three external pins be made available on the microprocessor, a very large number of pins for the information which results.
Recently, Intel Corporation has provided new hardware and software debugging tools especially designed for use by one programming the Pentium.RTM. processor. These include an "In-Circuit Emulator" (ICE) which allows execution tracing, bus cycle tracing, trace qualification to control breakpoints and trace buffer contents, and trace filtering to control the events provided to the programmer. It is necessary to provide signals which may be utilized to implement the operation of this circuitry. In accomplishing this, it is desirable to improve the information provided to a programmer by providing improved tracing apparatus while eliminating a number of externals pins on the processor.